package com.cy.study.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cy.study.common.BasePageReq;
import com.cy.study.entity.ExamEntity;
import com.cy.study.req.ExamAddReq;
import com.cy.study.req.ExamDeleteReq;
import com.cy.study.req.ExamPageReq;
import com.cy.study.req.UserExamPageReq;
import com.cy.study.res.*;

public interface ExamService extends IService<ExamEntity> {

    /**
     * 管理员添加试卷
     * @param req
     * @return
     */
    Integer addExam(ExamAddReq req);

    /**
     * 管理端试卷列表
     * @param req
     * @return
     */
    Page<ExamPageRes> pageExam(ExamPageReq req);

    /**
     * 管理端试卷列表
     * @param examId
     * @return
     */
    ExamDetailRes examDetail(Integer examId);

    /**
     * 用户中心做题记录列表
     * @param req
     * @return
     */
    Page<UserCenterPageExamRes> userCenterPageExam(BasePageReq req);

    /**
     * 用户中心做题记录详情
     * @param recordId
     * @return
     */
    CenterExamRes userCenterExamDetail(Integer recordId);

    /**
     * 用户端试卷列表
     * @param req
     * @return
     */
    Page<UserExamPageRes> userExamPage(UserExamPageReq req);

    /**
     * 管理员删除试卷
     * @param req
     */
    void deleteExam(ExamDeleteReq req);

}
